#ifndef MATRIX_H
#define MATRIX_H
#include "StompedReality/Core.h"
namespace StompedReality
{
namespace Math
{
class Vector2;
}
namespace Math
{
class DLL_EXPORT Matrix
{
 private:

  float* m_Matrix;

 public:

  Matrix( );
  ~Matrix( );
  float* M( )
  {
    return this->m_Matrix;
  }

  static Matrix* CreateDM( );
  void Translate ( float x, float y, float d = 0 );
  void Translate ( StompedReality::Math::Vector2* tr );
  void Print( );
  StompedReality::Math::Vector2* getTranslation( );
  static Matrix* CreateTranslationMatrix ( float x, float y, float d );
  static Matrix* CreateTranslationMatrix ( StompedReality::Math::Vector2* v );
  static Matrix* CreateRotationMatrix ( float alpha );
  Matrix* Multiply ( Matrix* other );
};

}
}
#endif // MATRIX_H
